/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.edu.unmsm.pacis.shca.domain.entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;

/**
 *
 * @author solriver
 */
@Entity
@Table(name = "domicilio", catalog = "bdshca")
@NamedQueries({
    @NamedQuery(name = "Domicilio.findAll", query = "SELECT d FROM Domicilio d"),
    @NamedQuery(name = "Domicilio.findByIdDomicilio", query = "SELECT d FROM Domicilio d WHERE d.idDomicilio = :idDomicilio"),
    @NamedQuery(name = "Domicilio.findByDomComite", query = "SELECT d FROM Domicilio d WHERE d.domComite = :domComite"),
    @NamedQuery(name = "Domicilio.findByDomLocalidad", query = "SELECT d FROM Domicilio d WHERE d.domLocalidad = :domLocalidad"),
    @NamedQuery(name = "Domicilio.findByDomSector", query = "SELECT d FROM Domicilio d WHERE d.domSector = :domSector"),
    @NamedQuery(name = "Domicilio.findByDomUrbanizacion", query = "SELECT d FROM Domicilio d WHERE d.domUrbanizacion = :domUrbanizacion"),
    @NamedQuery(name = "Domicilio.findByDomTipo", query = "SELECT d FROM Domicilio d WHERE d.domTipo = :domTipo"),
    @NamedQuery(name = "Domicilio.findByDomDireccion", query = "SELECT d FROM Domicilio d WHERE d.domDireccion = :domDireccion"),
    @NamedQuery(name = "Domicilio.findByDomNro", query = "SELECT d FROM Domicilio d WHERE d.domNro = :domNro"),
    @NamedQuery(name = "Domicilio.findByDomLote", query = "SELECT d FROM Domicilio d WHERE d.domLote = :domLote"),
    @NamedQuery(name = "Domicilio.findByDomReferencia", query = "SELECT d FROM Domicilio d WHERE d.domReferencia = :domReferencia"),
    @NamedQuery(name = "Domicilio.findByDomTelefono", query = "SELECT d FROM Domicilio d WHERE d.domTelefono = :domTelefono")})
public class Domicilio implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_domicilio")
    private Integer idDomicilio;
    @Column(name = "dom_comite")
    private String domComite;
    @Column(name = "dom_localidad")
    private String domLocalidad;
    @Column(name = "dom_sector")
    private String domSector;
    @Column(name = "dom_urbanizacion")
    private String domUrbanizacion;
    @Column(name = "dom_tipo")
    private String domTipo;
    @Column(name = "dom_direccion")
    private String domDireccion;
    @Column(name = "dom_nro")
    private String domNro;
    @Column(name = "dom_lote")
    private String domLote;
    @Column(name = "dom_referencia")
    private String domReferencia;
    @Column(name = "dom_telefono")
    private String domTelefono;
    @JoinColumns({
        @JoinColumn(name = "dis_CCDI", referencedColumnName = "CCDI"),
        @JoinColumn(name = "dis_CCPP", referencedColumnName = "CCPP"),
        @JoinColumn(name = "dis_CCDD", referencedColumnName = "CCDD")})
    @ManyToOne(optional = false)
    private Distrito distrito;
    @JoinColumn(name = "est_id_establecimiento_salud", referencedColumnName = "id_establecimiento_salud")
    @ManyToOne
    private EstablecimientoSalud estIdEstablecimientoSalud;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "domicilio")
    private List<HistorialDomicilio> historialDomicilioList;

    public Domicilio() {
    }

    public Domicilio(Integer idDomicilio) {
        this.idDomicilio = idDomicilio;
    }

    public Integer getIdDomicilio() {
        return idDomicilio;
    }

    public void setIdDomicilio(Integer idDomicilio) {
        this.idDomicilio = idDomicilio;
    }

    public String getDomComite() {
        return domComite;
    }

    public void setDomComite(String domComite) {
        this.domComite = domComite;
    }

    public String getDomLocalidad() {
        return domLocalidad;
    }

    public void setDomLocalidad(String domLocalidad) {
        this.domLocalidad = domLocalidad;
    }

    public String getDomSector() {
        return domSector;
    }

    public void setDomSector(String domSector) {
        this.domSector = domSector;
    }

    public String getDomUrbanizacion() {
        return domUrbanizacion;
    }

    public void setDomUrbanizacion(String domUrbanizacion) {
        this.domUrbanizacion = domUrbanizacion;
    }

    public String getDomTipo() {
        return domTipo;
    }

    public void setDomTipo(String domTipo) {
        this.domTipo = domTipo;
    }

    public String getDomDireccion() {
        return domDireccion;
    }

    public void setDomDireccion(String domDireccion) {
        this.domDireccion = domDireccion;
    }

    public String getDomNro() {
        return domNro;
    }

    public void setDomNro(String domNro) {
        this.domNro = domNro;
    }

    public String getDomLote() {
        return domLote;
    }

    public void setDomLote(String domLote) {
        this.domLote = domLote;
    }

    public String getDomReferencia() {
        return domReferencia;
    }

    public void setDomReferencia(String domReferencia) {
        this.domReferencia = domReferencia;
    }

    public String getDomTelefono() {
        return domTelefono;
    }

    public void setDomTelefono(String domTelefono) {
        this.domTelefono = domTelefono;
    }

    public Distrito getDistrito() {
        return distrito;
    }

    public void setDistrito(Distrito distrito) {
        this.distrito = distrito;
    }

    public EstablecimientoSalud getEstIdEstablecimientoSalud() {
        return estIdEstablecimientoSalud;
    }

    public void setEstIdEstablecimientoSalud(EstablecimientoSalud estIdEstablecimientoSalud) {
        this.estIdEstablecimientoSalud = estIdEstablecimientoSalud;
    }

    public List<HistorialDomicilio> getHistorialDomicilioList() {
        return historialDomicilioList;
    }

    public void setHistorialDomicilioList(List<HistorialDomicilio> historialDomicilioList) {
        this.historialDomicilioList = historialDomicilioList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idDomicilio != null ? idDomicilio.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Domicilio)) {
            return false;
        }
        Domicilio other = (Domicilio) object;
        if ((this.idDomicilio == null && other.idDomicilio != null) || (this.idDomicilio != null && !this.idDomicilio.equals(other.idDomicilio))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pe.edu.unmsm.pacis.shca.domain.entity.Domicilio[ idDomicilio=" + idDomicilio + " ]";
    }
    
}
